package mysql

import (
	"CampusCloudAid/models"
	"CampusCloudAid/pkg/snowflake"
	"database/sql"
	"time"

	"go.uber.org/zap"
)

// dao层作用是将充值的流水记录到流水表中，并更新钱包表的数据

// 微信支付配置

// 支付结果通知结构
type PayNotify struct {
	ReturnCode string `xml:"return_code"`
	ReturnMsg  string `xml:"return_msg"`
}

// RegisterAccount 注册账号时自动将钱包表注册了
func RegisterAccount(account *models.AccountBalance) (err error) {
	if err = Conn.Create(&account).Error; err != nil {
		zap.L().Error("DB.Create(&user).Error", zap.Error(err))
		return
	}
	return
}

// RechargeDAO 处理充值订单的数据访问逻辑
//type RechargeDAO struct {
//	DB *gorm.DB
//}

// CreateRecharge 创建充值订单
func CreateRecharge(userID int64, amount float64) (*models.Recharge, error) {
	id, _ := snowflake.GetID()
	recharge := &models.Recharge{
		Id:     int64(id),
		UserId: userID,
		Amount: amount,
		Status: "待支付", // 初始状态为待支付
		RechargeTime: sql.NullTime{
			Time:  time.Now(),
			Valid: true,
		},
		GetTime: sql.NullTime{},
	}
	if err := Conn.Create(recharge).Error; err != nil {
		return nil, err
	}
	return recharge, nil
}
